package com.link2room.jetfire.dto.param.inside;

import com.link2room.common.annotation.L2RDatetimeString;
import com.link2room.common.dto.param.base.BaseApiParamDto;
import com.link2room.common.util.DateUtil;

import java.math.BigDecimal;
import java.util.Date;

/**
 * Created by sss on 2016/9/20.
 */
public class ReservationBaseInsideParamDto extends BaseApiParamDto {
    /**
     * 活动代码
     */
    private String mcCode;
    /**
     * 产品代码
     */
    private String mcdCode;
    /**
     * 产品名称
     */
    private String mcdName;
    /**
     * 会员号
     */
    private String memberNo;
    /**
     * 房型
     */
    private String rmtype;
    /**
     * 房数
     */
    private Integer roomNum;
    /**
     * 房号
     */
    private String roomNo;
    /**
     * 到店日期
     */
    private Date arr;
    /**
     * 离店日期
     */
    private Date dep;
    /**
     * 到店日期
     */
    @L2RDatetimeString(source ="arr" )
    private String arrtime;
    /**
     * 离店日期
     */
    @L2RDatetimeString(source ="dep" )
    private String deptime;
    /**
     * 成人数
     */
    private Integer adult;
    /**
     * 小孩数
     */
    private Integer children;
    /**
     * 是否确认状态，NOTCFMD未确认，AUTOCFMD自动确认，AUTOREJ自动拒绝，MANUCFMD人工确认,MANUREJ人工拒绝
     */
    private String confirmSta;
    /**
     * 是否确认状态描述，NOTCFMD未确认，AUTOCFMD自动确认，AUTOREJ自动拒绝，MANUCFMD人工确认,MANUREJ人工拒绝
     */
    private String confirmStaDes;
    /**
     * 订单状态 R预订，X取消，I入住，O结账，S挂账
     */
    private String resSta;
    /**
     * 订单状态 R预订，X取消，I入住，O结账，S挂账
     */
    private String resStaDes;
    /**
     * 订单来源，WEB官网，WECHAT微信,APP应用程序，TMALL天猫
     */
    private String pbChannelDes;
    /**
     * 订单类型，PRE预付，CASH现付，CREDIT信用，GROUP团购，FREE免费
     */
    private String resType;
    /**
     * 订单类型，PRE预付，CASH现付，CREDIT信用，GROUP团购，FREE免费
     */
    private String resTypeDes;
    /**
     * 预订人姓名，仅做备注
     */
    private String rsvMan;
    /**
     * 预订单位名称，仅做备注
     */
    private String rsvCompany;
    /**
     * 预订人手机
     */
    private String rsvMobile;
    /**
     * 预订人电话
     */
    private String rsvTel;
    /**
     * 预订人传真
     */
    private String rsvFax;
    /**
     * 预订人email
     */
    private String rsvEmail;
    /**
     * 预订人 档案Id
     */
    private String rsvProfileNo;
    /**
     * 终端订单号
     */
    private String terminalNo;
    /**
     * 渠道订单号
     */
    private String channelNo;
    /**
     * 联房订单号
     */
    private String l2RNo;
    /**
     * crs订单号
     */
    private String crsNo;
    /**
     * pms订单号
     */
    private String pmsNo;
    /**
     * pms账务号
     */
    private String pmsAccountNo;
    /**
     * 预订总价
     */
    private BigDecimal resRateSum;
    /**
     * 预订房费
     */
    private BigDecimal resRateRoom;
    /**
     * 预订附加费用
     */
    private BigDecimal resRateExtra;
    /**
     * 实际总费用
     */
    private BigDecimal rateTotal;
    /**
     * 实际总房费
     */
    private BigDecimal rateRoom;
    /**
     * 已支付费用
     */
    private BigDecimal deposit;
    /**
     * 最后一次结账时间
     */
    private Date accountDate;
    /**
     * 最后一次结账时间
     */
    @L2RDatetimeString(source = "accountDate")
    private String accountDatetime;
    /**
     * 第三方支付状态:NONE未操作，DONE已操作，REJECT撤销
     */
    private String thirdPaysta;
    /**
     * 第三方支付状态:NONE未操作，DONE已操作，REJECT撤销
     */
    private String thirdPaystaDes;
    /**
     * 佣金比例
     */
    private BigDecimal comm;
    /**
     * 预付未支付取消时间
     */
    private Date cancelDate;
    /**
     * 预付未支付取消时间
     */
    @L2RDatetimeString(source = "cancelDate")
    private String cancelDatetime;
    /**
     * PMS房价码
     */
    private String pmsRatecode;

    private String remark;
    private String coMsg;


    public String getMcCode() {
        return mcCode;
    }

    public void setMcCode(String mcCode) {
        this.mcCode = mcCode;
    }

    public String getMcdCode() {
        return mcdCode;
    }

    public void setMcdCode(String mcdCode) {
        this.mcdCode = mcdCode;
    }

    public String getMcdName() {
        return mcdName;
    }

    public void setMcdName(String mcdName) {
        this.mcdName = mcdName;
    }

    public String getMemberNo() {
        return memberNo;
    }

    public void setMemberNo(String memberNo) {
        this.memberNo = memberNo;
    }

    public Integer getRoomNum() {
        return roomNum;
    }

    public void setRoomNum(Integer roomNum) {
        this.roomNum = roomNum;
    }

    public String getRoomNo() {
        return roomNo;
    }

    public void setRoomNo(String roomNo) {
        this.roomNo = roomNo;
    }

    public Date getArr() {
        return arr;
    }

    public void setArr(Date arr) {
        this.arr = arr;
    }

    public Date getDep() {
        return dep;
    }

    public void setDep(Date dep) {
        this.dep = dep;
    }

    public Integer getAdult() {
        return adult;
    }

    public void setAdult(Integer adult) {
        this.adult = adult;
    }

    public Integer getChildren() {
        return children;
    }

    public void setChildren(Integer children) {
        this.children = children;
    }

    public String getConfirmSta() {
        return confirmSta;
    }

    public void setConfirmSta(String confirmSta) {
        this.confirmSta = confirmSta;
    }

    public String getResSta() {
        return resSta;
    }

    public void setResSta(String resSta) {
        this.resSta = resSta;
    }

    public String getResType() {
        return resType;
    }

    public void setResType(String resType) {
        this.resType = resType;
    }

    public String getRsvMan() {
        return rsvMan;
    }

    public void setRsvMan(String rsvMan) {
        this.rsvMan = rsvMan;
    }

    public String getRsvCompany() {
        return rsvCompany;
    }

    public void setRsvCompany(String rsvCompany) {
        this.rsvCompany = rsvCompany;
    }

    public String getRsvMobile() {
        return rsvMobile;
    }

    public void setRsvMobile(String rsvMobile) {
        this.rsvMobile = rsvMobile;
    }

    public String getRsvTel() {
        return rsvTel;
    }

    public void setRsvTel(String rsvTel) {
        this.rsvTel = rsvTel;
    }

    public String getRsvFax() {
        return rsvFax;
    }

    public void setRsvFax(String rsvFax) {
        this.rsvFax = rsvFax;
    }

    public String getRsvEmail() {
        return rsvEmail;
    }

    public void setRsvEmail(String rsvEmail) {
        this.rsvEmail = rsvEmail;
    }

    public String getRsvProfileNo() {
        return rsvProfileNo;
    }

    public void setRsvProfileNo(String rsvProfileNo) {
        this.rsvProfileNo = rsvProfileNo;
    }

    public String getTerminalNo() {
        return terminalNo;
    }

    public void setTerminalNo(String terminalNo) {
        this.terminalNo = terminalNo;
    }

    public String getChannelNo() {
        return channelNo;
    }

    public void setChannelNo(String channelNo) {
        this.channelNo = channelNo;
    }

    public String getL2RNo() {
        return l2RNo;
    }

    public void setL2RNo(String l2RNo) {
        this.l2RNo = l2RNo;
    }

    public String getCrsNo() {
        return crsNo;
    }

    public void setCrsNo(String crsNo) {
        this.crsNo = crsNo;
    }

    public String getPmsNo() {
        return pmsNo;
    }

    public void setPmsNo(String pmsNo) {
        this.pmsNo = pmsNo;
    }

    public String getPmsAccountNo() {
        return pmsAccountNo;
    }

    public void setPmsAccountNo(String pmsAccountNo) {
        this.pmsAccountNo = pmsAccountNo;
    }

    public BigDecimal getResRateSum() {
        return resRateSum;
    }

    public void setResRateSum(BigDecimal resRateSum) {
        this.resRateSum = resRateSum;
    }

    public BigDecimal getResRateRoom() {
        return resRateRoom;
    }

    public void setResRateRoom(BigDecimal resRateRoom) {
        this.resRateRoom = resRateRoom;
    }

    public BigDecimal getResRateExtra() {
        return resRateExtra;
    }

    public void setResRateExtra(BigDecimal resRateExtra) {
        this.resRateExtra = resRateExtra;
    }

    public BigDecimal getRateTotal() {
        return rateTotal;
    }

    public void setRateTotal(BigDecimal rateTotal) {
        this.rateTotal = rateTotal;
    }

    public BigDecimal getRateRoom() {
        return rateRoom;
    }

    public void setRateRoom(BigDecimal rateRoom) {
        this.rateRoom = rateRoom;
    }

    public BigDecimal getDeposit() {
        return deposit;
    }

    public void setDeposit(BigDecimal deposit) {
        this.deposit = deposit;
    }

    public String getThirdPaysta() {
        return thirdPaysta;
    }

    public void setThirdPaysta(String thirdPaysta) {
        this.thirdPaysta = thirdPaysta;
    }

    public BigDecimal getComm() {
        return comm;
    }

    public void setComm(BigDecimal comm) {
        this.comm = comm;
    }

    public String getConfirmStaDes() {
        return confirmStaDes;
    }

    public void setConfirmStaDes(String confirmStaDes) {
        this.confirmStaDes = confirmStaDes;
    }

    public String getResStaDes() {
        return resStaDes;
    }

    public void setResStaDes(String resStaDes) {
        this.resStaDes = resStaDes;
    }

    public String getResTypeDes() {
        return resTypeDes;
    }

    public void setResTypeDes(String resTypeDes) {
        this.resTypeDes = resTypeDes;
    }

    public String getThirdPaystaDes() {
        return thirdPaystaDes;
    }

    public void setThirdPaystaDes(String thirdPaystaDes) {
        this.thirdPaystaDes = thirdPaystaDes;
    }

    public String getPbChannelDes() {
        return pbChannelDes;
    }

    public void setPbChannelDes(String pbChannelDes) {
        this.pbChannelDes = pbChannelDes;
    }

    public String getArrtime() {
        return arrtime;
    }

    public void setArrtime(String arrtime) {
        this.arrtime = arrtime;
        setArr(DateUtil.parseDateNewFormat(arrtime));
    }

    public String getDeptime() {
        return deptime;
    }

    public void setDeptime(String deptime) {
        this.deptime = deptime;
        setDep(DateUtil.parseDateNewFormat(deptime));
    }

    public Date getAccountDate() {
        return accountDate;
    }

    public void setAccountDate(Date accountDate) {
        this.accountDate = accountDate;
    }

    public String getAccountDatetime() {
        return accountDatetime;
    }

    public void setAccountDatetime(String accountDatetime) {
        this.accountDatetime = accountDatetime;
        setAccountDate(DateUtil.parseDateNewFormat(accountDatetime));
    }

    public Date getCancelDate() {
        return cancelDate;
    }

    public void setCancelDate(Date cancelDate) {
        this.cancelDate = cancelDate;
    }

    public String getCancelDatetime() {
        return cancelDatetime;
    }

    public void setCancelDatetime(String cancelDatetime) {
        this.cancelDatetime = cancelDatetime;
    }

    public String getRmtype() {
        return rmtype;
    }

    public void setRmtype(String rmtype) {
        this.rmtype = rmtype;
    }

    public String getPmsRatecode() {
        return pmsRatecode;
    }

    public void setPmsRatecode(String pmsRatecode) {
        this.pmsRatecode = pmsRatecode;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getCoMsg() {
        return coMsg;
    }

    public void setCoMsg(String coMsg) {
        this.coMsg = coMsg;
    }
}
